/**
 * <strong>Title : ReportDao.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.mm.dao<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2016年3月4日 下午5:02:37<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.mm.dao;

import java.util.List;
import java.util.Map;

import cn.b.sky.mes.mm.model.InOutBook;
import cn.b.sky.mes.mm.model.InventoryItemQuery;
import cn.b.sky.mes.mm.model.InventoryQuery;
import cn.b.sky.mes.mm.model.condition.InOutBookCondition;
import cn.b.sky.mes.mm.model.condition.InventoryItemQueryCondition;
import cn.b.sky.mes.mm.model.condition.InventoryQueryCondition;

/**
 * <strong>Title : ReportDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.mm.dao<br></strong>
 * <strong>Description : </strong>出入库，库存持久层<br> 
 * <strong>Create on : 2016年3月4日 下午5:02:37<br></strong>
 * <p> 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人    |    修改日期    |    修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface ReportDao {
  /**
   * 
   * <strong>Title : selectInOutBookListByCondition<br></strong>
   * <strong>Description : </strong>条件查询所有出入库台帐,分页<br> 
   * <strong>Create on : 2016年3月8日 上午9:43:52<br></strong>
   * <p>
   * @param condition
   * @return
   * List<InOutBook>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<InOutBook> selectInOutBookListByCondition(InOutBookCondition condition);

  int selectInOutBookCountByCondition(InOutBookCondition condition);

  /**
   * <strong>Title : selectAllInOutBookListByCondition<br></strong>
   * <strong>Description : </strong>条件查询所有出入库台帐 不分页<br> 
   * <strong>Create on : 2016年3月7日 下午1:39:16<br></strong>
   * <p>
   * @param condition
   * @return
   * List<InOutBook>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Map<String, Object>> selectAllInOutBookListByCondition(InOutBookCondition condition);

  /**
   * <strong>Title : selectInventoryListByCondition<br></strong>
   * <strong>Description : </strong>分页，条件查询库存列表<br> 
   * <strong>Create on : 2016年3月8日 上午9:42:50<br></strong>
   * <p>
   * @param condition
   * @return
   * List<InventoryQuery>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<InventoryQuery> selectInventoryListByCondition(InventoryQueryCondition condition);

  /**
   * <strong>Title : selectInventoryCountByCondition<br></strong>
   * <strong>Description : </strong>条件查询库存总数<br> 
   * <strong>Create on : 2016年3月8日 上午9:42:55<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectInventoryCountByCondition(InventoryQueryCondition condition);

  /**
   * <strong>Title : selectAllInventoryListByCondition<br></strong>
   * <strong>Description : </strong>不分页条件查询所有库存<br> 
   * <strong>Create on : 2016年3月8日 上午9:43:03<br></strong>
   * <p>
   * @param condition
   * @return
   * List<InventoryQuery>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Map<String, Object>> selectAllInventoryListByCondition(InventoryQueryCondition condition);

  /**
   * <strong>Title : selectInventoryItemListByCondition<br></strong>
   * <strong>Description : </strong>条件查询库存明细<br> 
   * <strong>Create on : 2016年3月17日 上午9:34:44<br></strong>
   * <p>
   * @param condition
   * @return
   * List<InventoryQuery>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<InventoryItemQuery> selectInventoryItemListByCondition(InventoryItemQueryCondition condition);

  /**
   * <strong>Title : selectInventoryItemCountByCondition<br></strong>
   * <strong>Description : </strong>条件查询库存明细总数<br> 
   * <strong>Create on : 2016年3月17日 上午9:34:49<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectInventoryItemCountByCondition(InventoryItemQueryCondition condition);

  /**
   * <strong>Title : selectAllInventoryItemListByCondition<br></strong>
   * <strong>Description : </strong>不分页条件查询所有库存明细<br> 
   * <strong>Create on : 2016年3月17日 上午9:34:54<br></strong>
   * <p>
   * @param condition
   * @return
   * List<Map<String,Object>>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人    |    修改日期    |    修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Map<String, Object>> selectAllInventoryItemListByCondition(InventoryItemQueryCondition condition);

}
